
dojo.provide("dojo.event.browser");dojo.require("dojo.event.common");dojo._ie_clobber=new function(){this.clobberNodes=[];function nukeProp(node,prop){try{node[prop]=null;}
catch(e){}
try{delete node[prop];}
catch(e){}
try{node.removeAttribute(prop);}
catch(e){}}
this.clobber=function(nodeRef){var na;var tna;if(nodeRef){tna=nodeRef.all||nodeRef.getElementsByTagName("*");na=[nodeRef];for(var x=0;x<tna.length;x++){if(tna[x]["__doClobber__"]){na.push(tna[x]);}}}else{try{window.onload=null;}
catch(e){}
na=(this.clobberNodes.length)?this.clobberNodes:document.all;}
tna=null;var basis={};for(var i=na.length-1;i>=0;i=i-1){var el=na[i];try{if(el&&el["__clobberAttrs__"]){for(var j=0;j<el.__clobberAttrs__.length;j++){nukeProp(el,el.__clobberAttrs__[j]);}
nukeProp(el,"__clobberAttrs__");nukeProp(el,"__doClobber__");}}
catch(e){}}
na=null;};};if(dojo.render.html.ie){dojo.addOnUnload(function(){dojo._ie_clobber.clobber();try{if((dojo["widget"])&&(dojo.widget["manager"])){dojo.widget.manager.destroyAll();}}
catch(e){}
if(dojo.widget){for(var name in dojo.widget._templateCache){if(dojo.widget._templateCache[name].node){dojo.dom.destroyNode(dojo.widget._templateCache[name].node);dojo.widget._templateCache[name].node=null;delete dojo.widget._templateCache[name].node;}}}
try{window.onload=null;}
catch(e){}
try{window.onunload=null;}
catch(e){}
dojo._ie_clobber.clobberNodes=[];});}
dojo.event.browser=new function(){var clobberIdx=0;this.normalizedEventName=function(eventName){switch(eventName){case"CheckboxStateChange":case"DOMAttrModified":case"DOMMenuItemActive":case"DOMMenuItemInactive":case"DOMMouseScroll":case"DOMNodeInserted":case"DOMNodeRemoved":case"RadioStateChange":return eventName;break;default:var lcn=eventName.toLowerCase();return(lcn.indexOf("on")==0)?lcn.substr(2):lcn;break;}};this.clean=function(node){if(dojo.render.html.ie){dojo._ie_clobber.clobber(node);}};this.addClobberNode=function(node){if(!dojo.render.html.ie){return;}
if(!node["__doClobber__"]){node.__doClobber__=true;dojo._ie_clobber.clobberNodes.push(node);node.__clobberAttrs__=[];}};this.addClobberNodeAttrs=function(node,props){if(!dojo.render.html.ie){return;}
this.addClobberNode(node);for(var x=0;x<props.length;x++){node.__clobberAttrs__.push(props[x]);}};this.removeListener=function(node,evtName,fp,capture){if(!capture){var capture=false;}
evtName=dojo.event.browser.normalizedEventName(evtName);if(evtName=="key"){if(dojo.render.html.ie){this.removeListener(node,"onkeydown",fp,capture);}
evtName="keypress";}
if(node.removeEventListener){node.removeEventListener(evtName,fp,capture);}};this.addListener=function(node,evtName,fp,capture,dontFix){if(!node){return;}
if(!capture){var capture=false;}
evtName=dojo.event.browser.normalizedEventName(evtName);if(evtName=="key"){if(dojo.render.html.ie){this.addListener(node,"onkeydown",fp,capture,dontFix);}
evtName="keypress";}
if(!dontFix){var newfp=function(evt){if(!evt){evt=window.event;}
var ret=fp(dojo.event.browser.fixEvent(evt,this));if(capture){dojo.event.browser.stopEvent(evt);}
return ret;};}else{newfp=fp;}
if(node.addEventListener){node.addEventListener(evtName,newfp,capture);return newfp;}else{evtName="on"+evtName;if(typeof node[evtName]=="function"){var oldEvt=node[evtName];node[evtName]=function(e){oldEvt(e);return newfp(e);};}else{node[evtName]=newfp;}
if(dojo.render.html.ie){this.addClobberNodeAttrs(node,[evtName]);}
return newfp;}};this.isEvent=function(obj){return(typeof obj!="undefined")&&(obj)&&(typeof Event!="undefined")&&(obj.eventPhase);};this.currentEvent=null;this.callListener=function(listener,curTarget){if(typeof listener!="function"){dojo.raise("listener not a function: "+listener);}
dojo.event.browser.currentEvent.currentTarget=curTarget;return listener.call(curTarget,dojo.event.browser.currentEvent);};this._stopPropagation=function(){dojo.event.browser.currentEvent.cancelBubble=true;};this._preventDefault=function(){dojo.event.browser.currentEvent.returnValue=false;};this.keys={KEY_BACKSPACE:8,KEY_TAB:9,KEY_CLEAR:12,KEY_ENTER:13,KEY_SHIFT:16,KEY_CTRL:17,KEY_ALT:18,KEY_PAUSE:19,KEY_CAPS_LOCK:20,KEY_ESCAPE:27,KEY_SPACE:32,KEY_PAGE_UP:33,KEY_PAGE_DOWN:34,KEY_END:35,KEY_HOME:36,KEY_LEFT_ARROW:37,KEY_UP_ARROW:38,KEY_RIGHT_ARROW:39,KEY_DOWN_ARROW:40,KEY_INSERT:45,KEY_DELETE:46,KEY_HELP:47,KEY_LEFT_WINDOW:91,KEY_RIGHT_WINDOW:92,KEY_SELECT:93,KEY_NUMPAD_0:96,KEY_NUMPAD_1:97,KEY_NUMPAD_2:98,KEY_NUMPAD_3:99,KEY_NUMPAD_4:100,KEY_NUMPAD_5:101,KEY_NUMPAD_6:102,KEY_NUMPAD_7:103,KEY_NUMPAD_8:104,KEY_NUMPAD_9:105,KEY_NUMPAD_MULTIPLY:106,KEY_NUMPAD_PLUS:107,KEY_NUMPAD_ENTER:108,KEY_NUMPAD_MINUS:109,KEY_NUMPAD_PERIOD:110,KEY_NUMPAD_DIVIDE:111,KEY_F1:112,KEY_F2:113,KEY_F3:114,KEY_F4:115,KEY_F5:116,KEY_F6:117,KEY_F7:118,KEY_F8:119,KEY_F9:120,KEY_F10:121,KEY_F11:122,KEY_F12:123,KEY_F13:124,KEY_F14:125,KEY_F15:126,KEY_NUM_LOCK:144,KEY_SCROLL_LOCK:145};this.revKeys=[];for(var key in this.keys){this.revKeys[this.keys[key]]=key;}
this.fixEvent=function(evt,sender){if(!evt){if(window["event"]){evt=window.event;}}
if((evt["type"])&&(evt["type"].indexOf("key")==0)){evt.keys=this.revKeys;for(var key in this.keys){evt[key]=this.keys[key];}
if(evt["type"]=="keydown"&&dojo.render.html.ie){switch(evt.keyCode){case evt.KEY_SHIFT:case evt.KEY_CTRL:case evt.KEY_ALT:case evt.KEY_CAPS_LOCK:case evt.KEY_LEFT_WINDOW:case evt.KEY_RIGHT_WINDOW:case evt.KEY_SELECT:case evt.KEY_NUM_LOCK:case evt.KEY_SCROLL_LOCK:case evt.KEY_NUMPAD_0:case evt.KEY_NUMPAD_1:case evt.KEY_NUMPAD_2:case evt.KEY_NUMPAD_3:case evt.KEY_NUMPAD_4:case evt.KEY_NUMPAD_5:case evt.KEY_NUMPAD_6:case evt.KEY_NUMPAD_7:case evt.KEY_NUMPAD_8:case evt.KEY_NUMPAD_9:case evt.KEY_NUMPAD_PERIOD:break;case evt.KEY_NUMPAD_MULTIPLY:case evt.KEY_NUMPAD_PLUS:case evt.KEY_NUMPAD_ENTER:case evt.KEY_NUMPAD_MINUS:case evt.KEY_NUMPAD_DIVIDE:break;case evt.KEY_PAUSE:case evt.KEY_TAB:case evt.KEY_BACKSPACE:case evt.KEY_ENTER:case evt.KEY_ESCAPE:case evt.KEY_PAGE_UP:case evt.KEY_PAGE_DOWN:case evt.KEY_END:case evt.KEY_HOME:case evt.KEY_LEFT_ARROW:case evt.KEY_UP_ARROW:case evt.KEY_RIGHT_ARROW:case evt.KEY_DOWN_ARROW:case evt.KEY_INSERT:case evt.KEY_DELETE:case evt.KEY_F1:case evt.KEY_F2:case evt.KEY_F3:case evt.KEY_F4:case evt.KEY_F5:case evt.KEY_F6:case evt.KEY_F7:case evt.KEY_F8:case evt.KEY_F9:case evt.KEY_F10:case evt.KEY_F11:case evt.KEY_F12:case evt.KEY_F12:case evt.KEY_F13:case evt.KEY_F14:case evt.KEY_F15:case evt.KEY_CLEAR:case evt.KEY_HELP:evt.key=evt.keyCode;break;default:if(evt.ctrlKey||evt.altKey){var unifiedCharCode=evt.keyCode;if(unifiedCharCode>=65&&unifiedCharCode<=90&&evt.shiftKey==false){unifiedCharCode+=32;}
if(unifiedCharCode>=1&&unifiedCharCode<=26&&evt.ctrlKey){unifiedCharCode+=96;}
evt.key=String.fromCharCode(unifiedCharCode);}}}else{if(evt["type"]=="keypress"){if(dojo.render.html.opera){if(evt.which==0){evt.key=evt.keyCode;}else{if(evt.which>0){switch(evt.which){case evt.KEY_SHIFT:case evt.KEY_CTRL:case evt.KEY_ALT:case evt.KEY_CAPS_LOCK:case evt.KEY_NUM_LOCK:case evt.KEY_SCROLL_LOCK:break;case evt.KEY_PAUSE:case evt.KEY_TAB:case evt.KEY_BACKSPACE:case evt.KEY_ENTER:case evt.KEY_ESCAPE:evt.key=evt.which;break;default:var unifiedCharCode=evt.which;if((evt.ctrlKey||evt.altKey||evt.metaKey)&&(evt.which>=65&&evt.which<=90&&evt.shiftKey==false)){unifiedCharCode+=32;}
evt.key=String.fromCharCode(unifiedCharCode);}}}}else{if(dojo.render.html.ie){if(!evt.ctrlKey&&!evt.altKey&&evt.keyCode>=evt.KEY_SPACE){evt.key=String.fromCharCode(evt.keyCode);}}else{if(dojo.render.html.safari){switch(evt.keyCode){case 25:evt.key=evt.KEY_TAB;evt.shift=true;break;case 63232:evt.key=evt.KEY_UP_ARROW;break;case 63233:evt.key=evt.KEY_DOWN_ARROW;break;case 63234:evt.key=evt.KEY_LEFT_ARROW;break;case 63235:evt.key=evt.KEY_RIGHT_ARROW;break;case 63236:evt.key=evt.KEY_F1;break;case 63237:evt.key=evt.KEY_F2;break;case 63238:evt.key=evt.KEY_F3;break;case 63239:evt.key=evt.KEY_F4;break;case 63240:evt.key=evt.KEY_F5;break;case 63241:evt.key=evt.KEY_F6;break;case 63242:evt.key=evt.KEY_F7;break;case 63243:evt.key=evt.KEY_F8;break;case 63244:evt.key=evt.KEY_F9;break;case 63245:evt.key=evt.KEY_F10;break;case 63246:evt.key=evt.KEY_F11;break;case 63247:evt.key=evt.KEY_F12;break;case 63250:evt.key=evt.KEY_PAUSE;break;case 63272:evt.key=evt.KEY_DELETE;break;case 63273:evt.key=evt.KEY_HOME;break;case 63275:evt.key=evt.KEY_END;break;case 63276:evt.key=evt.KEY_PAGE_UP;break;case 63277:evt.key=evt.KEY_PAGE_DOWN;break;case 63302:evt.key=evt.KEY_INSERT;break;case 63248:case 63249:case 63289:break;default:evt.key=evt.charCode>=evt.KEY_SPACE?String.fromCharCode(evt.charCode):evt.keyCode;}}else{evt.key=evt.charCode>0?String.fromCharCode(evt.charCode):evt.keyCode;}}}}}}
if(dojo.render.html.ie){if(!evt.target){evt.target=evt.srcElement;}
if(!evt.currentTarget){evt.currentTarget=(sender?sender:evt.srcElement);}
if(!evt.layerX){evt.layerX=evt.offsetX;}
if(!evt.layerY){evt.layerY=evt.offsetY;}
var doc=(evt.srcElement&&evt.srcElement.ownerDocument)?evt.srcElement.ownerDocument:document;var docBody=((dojo.render.html.ie55)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;if(!evt.pageX){evt.pageX=evt.clientX+(docBody.scrollLeft||0);}
if(!evt.pageY){evt.pageY=evt.clientY+(docBody.scrollTop||0);}
if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}
if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}
this.currentEvent=evt;evt.callListener=this.callListener;evt.stopPropagation=this._stopPropagation;evt.preventDefault=this._preventDefault;}
return evt;};this.stopEvent=function(evt){if(window.event){evt.cancelBubble=true;evt.returnValue=false;}else{evt.preventDefault();evt.stopPropagation();}};};